package _07剪邮票.拓展_连通性检测;

import java.util.Arrays;

/**
 在用快速查找算法时，对序列{p,q}每一对进行处理后，id数组中的值为合并操作。
 把所有与id[p]值相同的元素值变为id[q]值。

 例二：快速合并（并不快速的查找）
 */
public class demo2 {


    public static void main(String[] args) {
        int N = 10;
        int id [] = new int[N];
        for(int i = 0; i < N; i++){
            id[i] = i;
        }
        int [] [] a =  new int [][]{
                {3,4},{4,9},{8,0},{2,3},{5,6},{2,9},
                {5,9},{7,3},{4,8},{5,6},{0,2},{6,1},{5,8}
        };
        System.out.println(Arrays.toString(id));
        for(int [] s : a){
            int i, j, p = s[0], q = s[1];
            for(i = p; i != id[i]; i = id[i]);
            for(j = q; j != id[j]; j = id[j]);
            if(i == j){
                continue;
            }
            id [i] = j;
            System.out.println(" " + p + " " + q);
            System.out.println(Arrays.toString(id));
        }
    }
}